package ru.edu.vstu.atpp.acm.utils;

import org.apache.tapestry5.tree.TreeModelAdapter;
import ru.edu.vstu.atpp.acm.ui.entities.Tema;
import ru.edu.vstu.atpp.acm.ui.services.dao.TemaDAO;

import java.util.List;
import java.util.Locale;

/**
 * Модель отображения дерева тем
 */
public class TemaTreeModelAdapter implements TreeModelAdapter<Tema> {

    private TemaDAO temaDAO;
    private Locale  locale;


    public TemaTreeModelAdapter(TemaDAO pTemaDAO, Locale pLocale) {
        this.temaDAO = pTemaDAO;
        this.locale = pLocale;
    }

    @Override
    public boolean isLeaf(Tema tema) {
        return tema.getTemas().isEmpty();
    }

    @Override
    public boolean hasChildren(Tema tema) {
        return !tema.getTemas().isEmpty();
    }

    @Override
    public List<Tema> getChildren(Tema tema) {
        return temaDAO.getChildren(tema);
    }

    @Override
    public String getLabel(Tema tema) {
        return tema.getMultilingualId().getLocalizedString(locale);
    }
}
